package com.fjwt.gz.db.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 统计：机构会员通报表
 * </p>
 *
 * @author shiyonghao
 * @since 2025-08-21
 */
@Data
@Accessors(chain = true)
public class StatMemberNumDTO implements Serializable {

    /**
     * 主键
     */
    private Long memberNumId;

    /**
     * 小程序appid
     */
    private String liteAppId;

    /**
     * 统计截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date statDate;

    /**
     * 机构账号（暂无归属: Null）
     */
    private String agentNo;

    /**
     * 总计机构账号
     */
    private String totalAgentNo;

    /**
     * 机构账号（暂无归属: Null）
     */
    private List<String> agentNoList;

    /**
     * 小程序appid
     */
    private Integer level;

    /**
     * 下级机构数量
     */
    private Integer nextAgentNum;

    /**
     * 机构ID4
     */
    private String agentNo4;

    /**
     * 代理商名称4
     */
    private String agentName4;

    /**
     * 机构ID3
     */
    private String agentNo3;

    /**
     * 代理商名称3
     */
    private String agentName3;

    /**
     * 机构ID2
     */
    private String agentNo2;

    /**
     * 代理商名称2
     */
    private String agentName2;

    /**
     * 机构ID1
     */
    private String agentNo1;

    /**
     * 代理商名称1
     */
    private String agentName1;

    /**
     * 总会员数量
     */
    private Integer totalMemberNum;

    /**
     * 总已实名会员数量
     */
    private Integer totalCstmMemberNum;

    /**
     * 总旧会员数量（固定值）
     */
    private Integer totalOldMemberNum;

    /**
     * 总已同步旧会员数量排名
     */
    private Integer totalSyncMemberNumSort;

    /**
     * 总已同步旧会员数量
     */
    private Integer totalSyncMemberNum;

    /**
     * 总剩余同步旧会员数量
     */
    private Integer totalResidueSyncMemberNum;

    /**
     * 通过活动已同步旧会员数量
     */
    private Integer activitySyncMemberNum;

    /**
     * 通过活动已同步旧会员领取积分数量
     */
    private Integer activitySyncMemberScoreNum;

    /**
     * 总已同步旧会员数量均值
     */
    private BigDecimal totalSyncMemberNumAvg;

    /**
     * 日会员新增数量
     */
    private Integer dayMemberNum;

    /**
     * 日已实名会员新增数量
     */
    private Integer dayCstmMemberNum;

    /**
     * 日已实名会员新增数量排名
     */
    private Integer dayCstmMemberSort;

    /**
     * 日已同步旧会员新增数量
     */
    private Integer daySyncMemberNum;

    /**
     * 上周会员新增数量
     */
    private Integer lastWeekMemberNum;

    /**
     * 上周已实名会员新增数量
     */
    private Integer lastWeekCstmMemberNum;

    /**
     * 上周已实名会员新增数量排名
     */
    private Integer lastWeekCstmMemberSort;

    /**
     * 上周已同步旧会员新增数量
     */
    private Integer lastWeekSyncMemberNum;

    /**
     * 月会员新增数量
     */
    private Integer monthMemberNum;

    /**
     * 月已实名会员新增数量
     */
    private Integer monthCstmMemberNum;

    /**
     * 月已实名会员新增数量排名
     */
    private Integer monthCstmMemberSort;

    /**
     * 月已同步旧会员新增数量
     */
    private Integer monthSyncMemberNum;

    /**
     * 年会员新增数量
     */
    private Integer yearMemberNum;

    /**
     * 年已实名会员新增数量
     */
    private Integer yearCstmMemberNum;

    /**
     * 年已实名会员新增数量排名
     */
    private Integer yearCstmMemberSort;

    /**
     * 年已同步旧会员新增数量
     */
    private Integer yearSyncMemberNum;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 导出数据类型
     */
    private String exportType;

}
